/*
指针用来保存地址
1. 空指针：指针变量指向内存中编号为0的空间
用途：初始化指针变量
注意：空指针指向的内存是不可以访问的
2. 野指针：指针变量指向非法空间
总结：空指针和野指针都不是我们申请的空间，因此不要访问
*/
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;

int main() {
    // 定义指针
    int a = 10;
    int b;
    // 数据类型*指针变量名
    // 让指针记录变量a的地址
    //&取地址符
    //  int *p=&a;
    int *p;
    p = &a;
    cout << b;
    cout << "p=" << p << ", *p=" << *p << endl;
    // p = &a;
    // *p=6;
    // cout << "sizeof(int*)=" << sizeof(p) << endl;
    // cout << "a address: " << &a << endl;
    // cout << "指针p为: " << p << endl;
    // //通过解引用的方式来找到指针指向的内存
    // //指针前加*代表解引用，找到指针指向的内存的数据
    // //使用指针
    // cout << "a=" << a << endl;
    // cout << "*p=" << *p << endl;
    // 0-255之间的内存编号是系统占用内存，不允许用户访问
    // 下方赋值会报错
    // int *s = NULL;
    // *p = 100;
    // 在程序中,访问野指针会报错
    // int *t = (int *)0x1100;
    // cout<<*t<<endl;
    return 0;
}
